/** \file gu_shader_adapter.h */
#pragma once

#include "gu_shader_variable.h"
#include "gu_shader_parser.h"
#include "gu_shader.h"
#include "gu_stream_map.h"
#include "gu_uniform_map.h"

#include<memory>
#include<list>

namespace gu
{

/* Contains a platform specific 

        uniform map and 
        stream map.
   Counterpiece to MaterialSlot.
 **/

class ShaderAdapter
{
    //Shader*       shader_;
    UniformMap* uniformMap_;
    StreamMap*  streamMap_;

public:

    /** Interface to platform specific interface classes.*/
    ShaderAdapter(UniformMap* uniformMap, StreamMap*  streamMap):uniformMap_(uniformMap), streamMap_(streamMap){}


    UniformMap* uniformMap(){return uniformMap_;}
    StreamMap*  streamMap(){return streamMap_;}

};


}